package com.hfi.aop;

import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.DeclareParents;
import org.springframework.stereotype.Component;

/**
 * 通过@DeclareParents注解，将Encoreable接口引入到Performance bean中
 * Created by Administrator on 2017/12/1.
 */
@Component
@Aspect
public class EncoreableIntroducer {
    /**
     * value属性指定了哪种类型的bean要引入该接口，在本例中，也就是所有实现Performance的类型。
     * defaultImpl属性指定了为引入功能提供实现的类
     * @DeclareParents 注解所标注的静态属性指明了要引入了接口。在这里，我们所引入的是Encoreable接口。
     */
    @DeclareParents(value="com.hfi.aop.Performance+",defaultImpl = DefaultEncoreable.class)
    public static Encoreable encoreable;

}
